package skladowisko.transport;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import skladowisko.Terminal;

/**
 *
 * @author Krzysiek
 */
public class PlanowaneDzialania
{
    private Terminal terminal;
    private List<Transport> transporty = new ArrayList<Transport>();

    //***************************************************************************
    public PlanowaneDzialania(Terminal terminal)
    {
        this.terminal = terminal;
        inicjujPlany();
    }

    //***************************************************************************
    private void inicjujPlany()
    {
        //TODO
        //inicjacja planow na podstawie terminalu
    }
    //***************************************************************************
    public boolean dodajTransport(Transport nowy)
    {
        transporty.add(nowy);
        return true;
    }
    //***************************************************************************
    public List<TransportWychodzacy> pobierzTransportyWychodzace()
    {
        List<TransportWychodzacy> wynik = new ArrayList<TransportWychodzacy>();
        for(Transport t : transporty)
        {
            if(t instanceof TransportWychodzacy)
                wynik.add((TransportWychodzacy)t);
        }
        return wynik;
    }
    //***************************************************************************
    public List<TransportPrzychodzacy> pobierzTransportyPrzychodzace()
    {
        List<TransportPrzychodzacy> wynik = new ArrayList<TransportPrzychodzacy>();
        for(Transport t : transporty)
        {
            if(t instanceof TransportPrzychodzacy)
                wynik.add((TransportPrzychodzacy)t);
        }
        return wynik;
    }
    //***************************************************************************
    public List<Transport> pobierzTransporty()
    {
        return this.transporty;
    }
    //***************************************************************************

    public void sortuj()
    {
        Collections.sort(transporty, new KomparatorCzasow());
    }

    //***************************************************************************
    private class KomparatorCzasow implements Comparator<Transport>
    {
        public int compare(Transport t1, Transport t2)
        {
            Date o1 = t1.getPlanowanaData();
            Date o2 = t2.getPlanowanaData();

            if(o1.before(o2))
                return 1;
            return -1;
    }

}


}
